package cc.zy.base.hr.entity;

import cc.zy.base.common.converter.TimeConverter;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author LiuShuiWang
 * @date 2022/3/8 , 23:22
 * @Description: 部门信息表
 */
@Data
@TableName("t_qywx_dept")
@Excel("部门信息表")
public class QywxDept implements Serializable {

    public static final Long TOP_NODE = 0L;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:39
     * 部门id，从企业微信获取，不自增
     */
    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:39
     * 父部门id，32位整型
     */
    @TableField("PARENT_ID")
    private Integer parentId;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:40
     * 部门名称。同一个层级的部门名称不能重复。长度限制为1~32个字符，字符不能包括:*?"<>｜
     */
    @TableField("DEPT_NAME")
    private String deptName;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:41
     * 在父部门中的次序值。order值大的排序靠前。有效的值范围是[0, 2^32)
     */
    @TableField("ORDER")
    private Integer order;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:42
     * 部门负责人
     */
    @TableField("DEPARTMENT_LEADER")
    @ExcelField(value = "部门负责人")
    private String departmentLeader;

    /**
     * @Author LiuWang
     * @Date 2022/3/8 22:43
     * 数据更新的最后时间
     */
    @TableField("LAST_MODIFY_DATE")
    @ExcelField(value = "修改时间", writeConverter = TimeConverter.class)
    @JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒", timezone = "CTT")
    private Date lastModifyDate;

}
